// plugins/official-block.client.js
import { defineNuxtPlugin } from '#app';

export default defineNuxtPlugin(async (nuxtApp) => {
  try {
    console.log('开始注册客户端插件...');

    // 首先导入并注册 Arco Design 组件
    const ArcoVue = await import('@arco-design/web-vue');
    console.log('Arco Design 组件库已导入');

    // 导入并注册 Arco Design 图标组件
    const ArcoVueIcon = await import('@arco-design/web-vue/es/icon');
    console.log('Arco Design 图标库已导入');

    // 注册 Arco Design 组件
    nuxtApp.vueApp.use(ArcoVue.default);
    console.log('Arco Design 组件已注册');

    // 注册 Arco Design 图标组件
    nuxtApp.vueApp.use(ArcoVueIcon.default);
    console.log('Arco Design 图标已注册');

    // 然后导入并注册 OfficialBlock 组件
    const { default: OfficialBlock } = await import('officialblock');

    // 使用插件方式注册（等同于Vue3中的app.use()）
    nuxtApp.vueApp.use(OfficialBlock);

    console.log('OfficialBlock 插件已成功注册');
    console.log('可用的全局组件:', Object.keys(nuxtApp.vueApp._context.components || {}));
  } catch (error) {
    console.error('插件注册失败:', error);
    console.error('错误详情:', error.stack);
  }
});